In a communication system, unnecessary and excessive transmission by a user may cause interference for other users in addition to reducing the system capacity. The unnecessary and excessive transmission may be caused by inefficient flow of data in the communication system. The data communicated between two end users may pass through several layers of protocols for assuring proper flow of data through the system. The proper delivery of data in at least one aspect is assured through a system of checking for error in each packet of data, and requesting a retransmission of the same packet of data if an unacceptable error is detected in the packet of data. Passing data from one protocol layer to another may be performed for a group of data packets at a time. Passing a group of data packets from one protocol layer to another may not take place until the process for retransmission of the selected packets of data in the group in the lower protocol layer has been completed. As a result, the retransmission process at one protocol layer may slow down flow of data between different protocol layers in the system. In addition, the higher layer of protocol may request for retransmission of all the packets of data in the group, resulting in a very inefficient use of communication resources when flow of data from one protocol layer to another is slowing or changing from fast to slow in a rapid succession.
To this end as well as others, there is a need for a method and apparatus to efficiently control flow of data in a communication system.